package com.hyjx.framework.uc.role;

import com.hyjx.framework.common.tree.TreeObject;

import java.util.List;

/**
 * 角色服务接口
 *
 * @author Peter
 */
public interface RoleService {

    /**
     * 查询信息列表
     *
     * @return
     */
    String queryList(RoleModel model);

    /**
     * 新增数据保存
     *
     * @param model 实体信息
     * @return
     */
    boolean add(RoleModel model);

    /**
     * 根据ID查询信息
     */
    RoleModel getInfoById(String s);

    /**
     * 修改信息
     */
    int edit(RoleModel model);

    /**
     * 删除信息
     *
     * @param id
     */
    int delete(String id);

    /**
     * 取角色对应菜单字符串
     *
     * @param roleId
     * @return
     */
    String getRoleMenuStr(String roleId);

    /**
     * 取角色单位对应关系串
     *
     * @param roleId
     * @return
     */
    String getRoleOrgStr(String roleId);

    /**
     * 取菜单树
     *
     * @return
     */
    List<TreeObject> getAll();

    /**
     * 根据orgCode取所有上级信息，含自己
     *
     * @param orgCode
     * @return 备选角色集合
     */
    List<RoleModel> queryRoleListByOrgCode(String orgCode);

    /**
     * 取所有角色
     *
     * @return List<RoleModel>
     */
    List<RoleModel> queryAllRoles();

    /**
     * 取所有角色对应单位
     *
     * @return List<RoleModel>
     */
    List<RoleOrgModel> queryAllRoleOrgList();

    /**
     * 取所有角色对应菜单
     *
     * @return List<RoleMenuModel>
     */
    List<RoleMenuModel> queryAllRoleMenuList();

    /**
     * 根据部门编码将角色置为无效
     *
     * @param deptCode 部门编码
     * @return 结果 true:成功，false:失败
     */
    boolean disableRoleByDeptCode(String deptCode);

    /**
     * 保存角色用户对应关系
     * * @param roleId
     *
     * @param userIds
     * @return
     */
    boolean saveRoleUser(String roleId, String userIds);
}
